<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>任意文件上传</title>
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
  <link rel="stylesheet" href="../../plugins/fontawesome-free/css/all.min.css">
  <link rel="stylesheet" href="../../plugins/overlayScrollbars/css/OverlayScrollbars.min.css">
  <link rel="stylesheet" href="../../dist/css/adminlte.min.css">
</head>
<body class="hold-transition dark-mode sidebar-mini layout-fixed layout-navbar-fixed layout-footer-fixed">
<div class="wrapper">
  <nav id="Navbar" class="main-header navbar navbar-expand navbar-dark"></nav>
  <aside id="Container" class="main-sidebar sidebar-dark-primary elevation-4"></aside>
  <div class="content-wrapper" id="Wrapper">
    <section class="content-header" id="WrapperHeader"></section>
    <section class="content">
      <div class="container-fluid">
        <div id="notice"></div>
        <div class="card card-primary card-outline">
          <div class="card-header">
            <h3 class="card-title">后端校验MIME TYPE</h3>
          </div>
          <div class="card-body">
            <div class="card card-primary">
              <div class="card-header">
                <h3 class="card-title">图片上传</h3>
              </div>
              <form action="" onsubmit="return false;">
                <div class="card-body">
                  <div class="form-group">
                    <label for="inputFile">选择文件</label>
                    <div class="input-group">
                      <div class="custom-file">
                        <input type="file" class="custom-file-input" id="inputFile" onchange="checkFileExt(this.value)">
                        <label class="custom-file-label" for="inputFile">Choose file</label>
                      </div>
                    </div>
                  </div>
                </div>
                <div class="card-footer">
                  <button type="submit" class="btn btn-primary" onclick="uploadImage()">上传</button>
                </div>
              </form>
            </div>
          </div>
        </div>
        <div class="card card-primary card-outline" id="showSource">
          <div class="card-header">
            <h3 class="card-title">源代码&amp;提示</h3>
          </div>
          <div class="card-body">
            <div>
              <p>后端针对ContentType进行了白名单校验，但这只是校验方式的一种，尝试绕过吧！</p>
              <p><strong>Servlet 实现代码</strong></p>
              <pre><code>&#x20;&#x20;&#x20;&#x20;&commat;&#x41;&#x70;&#x69;&lpar;&lcub;&#x52;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&#x4D;&#x65;&#x74;&#x68;&#x6F;&#x64;&#x54;&#x79;&#x70;&#x65;&period;&#x50;&#x4F;&#x53;&#x54;&rcub;&rpar;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x70;&#x75;&#x62;&#x6C;&#x69;&#x63;&#x20;&#x4D;&#x61;&#x70;&lt;&quest;&comma;&#x20;&quest;&gt;&#x20;&#x69;&#x6D;&#x61;&#x67;&#x65;&#x4D;&#x49;&#x4D;&#x45;&lpar;&#x48;&#x74;&#x74;&#x70;&#x53;&#x65;&#x72;&#x76;&#x6C;&#x65;&#x74;&#x52;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&#x20;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&comma;&#x20;&#x48;&#x74;&#x74;&#x70;&#x53;&#x65;&#x72;&#x76;&#x6C;&#x65;&#x74;&#x52;&#x65;&#x73;&#x70;&#x6F;&#x6E;&#x73;&#x65;&#x20;&#x72;&#x65;&#x73;&#x70;&#x6F;&#x6E;&#x73;&#x65;&rpar;&#x20;&#x74;&#x68;&#x72;&#x6F;&#x77;&#x73;&#x20;&#x53;&#x65;&#x72;&#x76;&#x6C;&#x65;&#x74;&#x45;&#x78;&#x63;&#x65;&#x70;&#x74;&#x69;&#x6F;&#x6E;&comma;&#x20;&#x49;&#x4F;&#x45;&#x78;&#x63;&#x65;&#x70;&#x74;&#x69;&#x6F;&#x6E;&#x20;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x50;&#x61;&#x72;&#x74;&#x20;&#x66;&#x69;&#x6C;&#x65;&#x20;&equals;&#x20;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&period;&#x67;&#x65;&#x74;&#x50;&#x61;&#x72;&#x74;&lpar;&quot;&#x69;&#x6D;&#x61;&#x67;&#x65;&lowbar;&#x66;&#x69;&#x6C;&#x65;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x66;&#x6F;&#x72;&lpar;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x69;&#x20;&colon;&#x20;&#x46;&#x69;&#x6C;&#x65;&#x53;&#x65;&#x72;&#x76;&#x65;&#x72;&#x49;&#x6D;&#x70;&#x6C;&period;&#x49;&#x4D;&#x41;&#x47;&#x45;&lowbar;&#x46;&#x49;&#x4C;&#x45;&lowbar;&#x54;&#x59;&#x50;&#x45;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x66;&#x20;&lpar;&#x66;&#x69;&#x6C;&#x65;&period;&#x67;&#x65;&#x74;&#x43;&#x6F;&#x6E;&#x74;&#x65;&#x6E;&#x74;&#x54;&#x79;&#x70;&#x65;&lpar;&rpar;&period;&#x65;&#x71;&#x75;&#x61;&#x6C;&#x73;&lpar;&quot;&#x69;&#x6D;&#x61;&#x67;&#x65;&sol;&quot;&plus;&#x69;&rpar;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x75;&#x70;&#x6C;&#x6F;&#x61;&#x64;&#x46;&#x69;&#x6C;&#x65;&lpar;&#x66;&#x69;&#x6C;&#x65;&comma;&#x20;&#x75;&#x70;&#x6C;&#x6F;&#x61;&#x64;&#x50;&#x61;&#x74;&#x68;&lpar;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&rpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&comma;&#x20;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&gt;&#x20;&#x64;&#x61;&#x74;&#x61;&equals;&#x20;&#x6E;&#x65;&#x77;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&gt;&lpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x75;&#x70;&#x6C;&#x6F;&#x61;&#x64;&#x53;&#x74;&#x61;&#x74;&#x75;&#x73;&quot;&comma;&#x20;&#x66;&#x61;&#x6C;&#x73;&#x65;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x64;&#x61;&#x74;&#x61;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x70;&#x72;&#x69;&#x76;&#x61;&#x74;&#x65;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&comma;&#x20;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&gt;&#x20;&#x75;&#x70;&#x6C;&#x6F;&#x61;&#x64;&#x46;&#x69;&#x6C;&#x65;&lpar;&#x50;&#x61;&#x72;&#x74;&#x20;&#x69;&#x6D;&#x61;&#x67;&#x65;&#x46;&#x69;&#x6C;&#x65;&comma;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x66;&#x69;&#x6C;&#x65;&#x50;&#x61;&#x74;&#x68;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&comma;&#x20;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&gt;&#x20;&#x64;&#x61;&#x74;&#x61;&equals;&#x20;&#x6E;&#x65;&#x77;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&gt;&lpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x74;&#x72;&#x79;&#x20;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x66;&#x69;&#x6C;&#x65;&#x4E;&#x61;&#x6D;&#x65;&#x20;&equals;&#x20;&#x69;&#x6D;&#x61;&#x67;&#x65;&#x46;&#x69;&#x6C;&#x65;&period;&#x67;&#x65;&#x74;&#x53;&#x75;&#x62;&#x6D;&#x69;&#x74;&#x74;&#x65;&#x64;&#x46;&#x69;&#x6C;&#x65;&#x4E;&#x61;&#x6D;&#x65;&lpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x6C;&#x6F;&#x6E;&#x67;&#x20;&#x66;&#x69;&#x6C;&#x65;&#x53;&#x69;&#x7A;&#x65;&#x20;&equals;&#x20;&#x69;&#x6D;&#x61;&#x67;&#x65;&#x46;&#x69;&#x6C;&#x65;&period;&#x67;&#x65;&#x74;&#x53;&#x69;&#x7A;&#x65;&lpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x66;&lpar;&#x66;&#x69;&#x6C;&#x65;&#x53;&#x69;&#x7A;&#x65;&#x20;&gt;&#x20;&#x46;&#x69;&#x6C;&#x65;&#x53;&#x65;&#x72;&#x76;&#x65;&#x72;&#x49;&#x6D;&#x70;&#x6C;&period;&#x4D;&#x41;&#x58;&lowbar;&#x46;&#x49;&#x4C;&#x45;&lowbar;&#x53;&#x49;&#x5A;&#x45;&rpar;&lcub;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x75;&#x70;&#x6C;&#x6F;&#x61;&#x64;&#x53;&#x74;&#x61;&#x74;&#x75;&#x73;&quot;&comma;&#x20;&#x66;&#x61;&#x6C;&#x73;&#x65;&rpar;&semi;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x64;&#x61;&#x74;&#x61;&semi;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x66;&#x69;&#x6C;&#x65;&#x54;&#x79;&#x70;&#x65;&#x20;&equals;&#x20;&#x69;&#x6D;&#x61;&#x67;&#x65;&#x46;&#x69;&#x6C;&#x65;&period;&#x67;&#x65;&#x74;&#x43;&#x6F;&#x6E;&#x74;&#x65;&#x6E;&#x74;&#x54;&#x79;&#x70;&#x65;&lpar;&rpar;&semi;&NewLine;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x46;&#x69;&#x6C;&#x65;&#x20;&#x66;&#x69;&#x6C;&#x65;&#x20;&equals;&#x20;&#x6E;&#x65;&#x77;&#x20;&#x46;&#x69;&#x6C;&#x65;&lpar;&#x66;&#x69;&#x6C;&#x65;&#x50;&#x61;&#x74;&#x68;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x66;&#x20;&lpar;&excl;&#x66;&#x69;&#x6C;&#x65;&period;&#x65;&#x78;&#x69;&#x73;&#x74;&#x73;&lpar;&rpar;&#x20;&amp;&amp;&#x20;&excl;&#x66;&#x69;&#x6C;&#x65;&period;&#x69;&#x73;&#x44;&#x69;&#x72;&#x65;&#x63;&#x74;&#x6F;&#x72;&#x79;&lpar;&rpar;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x66;&#x69;&#x6C;&#x65;&period;&#x6D;&#x6B;&#x64;&#x69;&#x72;&lpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x6D;&#x61;&#x67;&#x65;&#x46;&#x69;&#x6C;&#x65;&period;&#x77;&#x72;&#x69;&#x74;&#x65;&lpar;&#x66;&#x69;&#x6C;&#x65;&#x50;&#x61;&#x74;&#x68;&plus;&quot;&#x5C;&#x5C;&quot;&plus;&#x66;&#x69;&#x6C;&#x65;&#x4E;&#x61;&#x6D;&#x65;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&comma;&#x20;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&gt;&#x20;&#x66;&#x69;&#x6C;&#x65;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&#x20;&equals;&#x20;&#x66;&#x73;&#x69;&period;&#x75;&#x70;&#x6C;&#x6F;&#x61;&#x64;&#x46;&#x69;&#x6C;&#x65;&lpar;&#x6E;&#x65;&#x77;&#x20;&#x46;&#x69;&#x6C;&#x65;&#x45;&#x6E;&#x74;&#x69;&#x74;&#x79;&lpar;&#x66;&#x69;&#x6C;&#x65;&#x4E;&#x61;&#x6D;&#x65;&comma;&#x20;&#x66;&#x69;&#x6C;&#x65;&#x54;&#x79;&#x70;&#x65;&comma;&#x20;&lpar;&#x66;&#x69;&#x6C;&#x65;&#x50;&#x61;&#x74;&#x68;&plus;&quot;&#x5C;&#x5C;&quot;&plus;&#x66;&#x69;&#x6C;&#x65;&#x4E;&#x61;&#x6D;&#x65;&rpar;&comma;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x53;&#x79;&#x73;&#x74;&#x65;&#x6D;&period;&#x63;&#x75;&#x72;&#x72;&#x65;&#x6E;&#x74;&#x54;&#x69;&#x6D;&#x65;&#x4D;&#x69;&#x6C;&#x6C;&#x69;&#x73;&lpar;&rpar;&comma;&#x20;&#x66;&#x69;&#x6C;&#x65;&#x53;&#x69;&#x7A;&#x65;&comma;&#x20;&lpar;&#x6E;&#x65;&#x77;&#x20;&#x49;&#x6D;&#x61;&#x67;&#x65;&#x56;&#x65;&#x72;&#x69;&#x66;&#x69;&#x63;&#x61;&#x74;&#x69;&#x6F;&#x6E;&#x43;&#x6F;&#x64;&#x65;&lpar;&rpar;&rpar;&period;&#x47;&#x65;&#x74;&#x52;&#x61;&#x6E;&#x64;&#x6F;&#x6D;&lpar;&#x38;&rpar;&rpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x66;&#x20;&lpar;&#x66;&#x69;&#x6C;&#x65;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&period;&#x69;&#x73;&#x45;&#x6D;&#x70;&#x74;&#x79;&lpar;&rpar;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x75;&#x70;&#x6C;&#x6F;&#x61;&#x64;&#x53;&#x74;&#x61;&#x74;&#x75;&#x73;&quot;&comma;&#x20;&#x66;&#x61;&#x6C;&#x73;&#x65;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x64;&#x61;&#x74;&#x61;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x66;&#x69;&#x6C;&#x65;&quot;&comma;&#x20;&#x66;&#x69;&#x6C;&#x65;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x75;&#x70;&#x6C;&#x6F;&#x61;&#x64;&#x53;&#x74;&#x61;&#x74;&#x75;&#x73;&quot;&comma;&#x20;&#x74;&#x72;&#x75;&#x65;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&#x20;&#x63;&#x61;&#x74;&#x63;&#x68;&#x20;&lpar;&#x45;&#x78;&#x63;&#x65;&#x70;&#x74;&#x69;&#x6F;&#x6E;&#x20;&#x65;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x75;&#x70;&#x6C;&#x6F;&#x61;&#x64;&#x53;&#x74;&#x61;&#x74;&#x75;&#x73;&quot;&comma;&#x20;&#x66;&#x61;&#x6C;&#x73;&#x65;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x6D;&#x73;&#x67;&quot;&comma;&#x20;&#x65;&period;&#x67;&#x65;&#x74;&#x4D;&#x65;&#x73;&#x73;&#x61;&#x67;&#x65;&lpar;&rpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x64;&#x61;&#x74;&#x61;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&rcub;</code></pre>
              <p>其中 <code>IMAGE_FILE_TYPE </code> 的值为 <code>{"png", "jpg", "gif"}</code></p>
            </div>
          </div>
        </div>
      </div>
    </section>
  </div>
</div>
  <aside class="control-sidebar control-sidebar-dark">
  </aside>
  <footer class="main-footer"></footer>
  <script src="../../dist/js/templateHandle.js"></script>
  <script>
    setWrapperHeader("任意文件上传", ["后端校验MIME TYPE"]);
  </script>
  <script src="../../plugins/jquery/jquery.min.js"></script>
  <script src="../../plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
  <script src="../../plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js"></script>
  <script src="../../dist/js/adminlte.js"></script>
  <script>

    let notice_dom = $("#notice")[0];
    let label_dom = $("#inputFile + label")[0]
    function checkFileExt(filename){
      label_dom.innerText = filename;
      notice_dom.innerHTML = '';
    }

    function uploadImage(){
      let files = $("#inputFile")[0].files;
      if (files.length === 0)return;
      let fd = new FormData();
      fd.append('image_file', files[0]);
      $.post({
        url: `${project_name}uploadAction/imageMIME`,
        data: fd,
        processData: false,
        contentType: false,
        success(resp){
          if (resp['uploadStatus']){
            let fileObj = resp['file'];
            let path = baseUri + fileObj.url;
            notice_dom.innerHTML = generateNote(`上传成功文件访问路径为：<a href='${path}' target="_blank" style="color: #53aefd;">${path}</a>`);
          } else {
            notice_dom.innerHTML = generateNote("上传失败");
          }
        }
      })
    }
  </script>
</body>
</html>